package visiopuce.service;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import visiopuce.HibernateUtil;
import visiopuce.DAO.HistoriqueDAO;
import visiopuce.DAO.HistoriqueDAOImpl;
import visiopuce.objets.Historique;

public class HistoriqueServiceImpl implements HistoriqueService {

	private HistoriqueDAO historiqueDAO = HistoriqueDAOImpl.getInstance();

	/** Constructeur priv� */
	private HistoriqueServiceImpl() {
	}

	/** Instance unique non pr�initialis�e */
	private static HistoriqueServiceImpl INSTANCE = null;

	/** Point d'acc�s pour l'instance unique du singleton */
	public static HistoriqueService getInstance() {
		if (INSTANCE == null) {
			INSTANCE = new HistoriqueServiceImpl();
		}
		return INSTANCE;
	}

	public void save(Historique h) {
		HibernateUtil.beginTransaction();
		try {
			historiqueDAO.save(h);
			HibernateUtil.commitTransaction();
		} catch (Exception ex) {
			ex.printStackTrace();
			HibernateUtil.rollbackTransaction();
		} finally {
			HibernateUtil.closeSession();
		}
	}

	@Override
	public List<Historique> getSuppChampObj() {
		List<Historique> liste = null;
		HibernateUtil.beginTransaction();
		try {
			liste = historiqueDAO.getSuppChampObj();
			HibernateUtil.commitTransaction();
		} catch (Exception ex) {
			ex.printStackTrace();
			HibernateUtil.rollbackTransaction();
		} finally {
			HibernateUtil.closeSession();
		}
		return liste;
	}

	@Override
	public List<Historique> getHistoInsert(Integer idPrelevement) {
		List<Historique> liste = null;
		HibernateUtil.beginTransaction();
		try {
			liste = historiqueDAO.getHistoInsert(idPrelevement);
			HibernateUtil.commitTransaction();
		} catch (Exception ex) {
			ex.printStackTrace();
			HibernateUtil.rollbackTransaction();
		} finally {
			HibernateUtil.closeSession();
		}
		return liste;
	}

}